The present invention relates to a user interface for a compiler, and more particularly, to a user interface for making compiler tradeoffs.
An application program may be built (compiled and linked) in a number of different ways. For example, as part of a compiler compiling an application program, different compiler options may be used and different memory maps or layouts (on chip vs off chip) may be used. For convenience herein, a specific way of building an application program (compiling and linking a program with specific choices for compiler options and other options like memory maps/layouts) will be termed a xe2x80x9cmethodxe2x80x9d. An application program typically consists of several different functions that are used to perform the activities an application program is to perform. If the method changes at the function level (from function to function), the term xe2x80x9csolutionxe2x80x9d will be used to represent a specific assignment of methods to each function of the compiled application.
Each method of building an application can result in an executable version of the program application (version) that exhibits different results, such as, for example, code size and processor cycle count behavior. If an application is built using several different methods, each resulting version of the application can be profiled at the function level for its results over a consistent input set, for example, collecting compiled code size and execution cycles for the functions in the application program. The resulting set of profile information describes the effects that each method has on each profitable function; for the example previously employed, this is in terms of code size and number of cycles executed for each function of an application program.
A solution engine uses this profiling information to evaluate the permutations of varying methods at the function level to compute all of the useful solutions. A solution is xe2x80x9cusefulxe2x80x9d, if no other solution results in a version of the application that is better optimized for a specific result, such as, for example, either faster and smaller in code size than it.
What is needed is a user interface that can be used to display the set of useful solutions and allow a user to effectively understand, inspect, and manipulate result tradeoffs.
The present invention provides a user interface that allows a user to visually understand, inspect, and manipulate a set of useful solutions as a function of compiler options and other options, such as for example, but not limited to, code size and speed tradeoffs for an application program.
A user interface for displaying and controlling the results of compiling an application program with a compiler having a preselected number of compiling options, comprising of a module for displaying at least a portion of solution information as a function of said selected compiling options and for selecting at least one displayed solution, and a module for outputting, for a selected solution, compiler information to allow for said application program to be compiled in a manner consistent with said selected solution.
Other device, system and method forms of the invention are also disclosed and claimed herein. Other features of the invention are disclosed and still other features will be apparent from the disclosure herein.